package com.htpay.model.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.Date;

/**
 * 商户订单信息表
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class MerchantOrder implements Serializable {
    private static final long serialVersionUID = 1L;

    public MerchantOrder() {
        super();
    }

    public MerchantOrder(String merchantOrderCode) {
        this.merchantOrderCode = merchantOrderCode;
    }

    /**
     * 订单ID
     */
    @TableId(type = IdType.ID_WORKER_STR)
    private String id;

    /**
     * 商户ID
     */
    private Integer merchantId;

    /**
     * 系统订单号
     */
    private String orderCode;

    /**
     * 1:商户订单、2：系统订单
     */
    private char orderType;
    /**
     * 0成功 1失败 2未付款
     */
    private char orderStatus;

    /**
     * 通道类型
     * <p>
     * 支付宝	101
     * 微信		102
     * 网银		103
     * 聚合支付	104
     * 财付通	105
     * 支付宝H5	201
     * 微信H5	202
     */
    private String chargeType;

    private String bankName;

    /**
     * 商户订单号
     */
    private String merchantOrderCode;

    public void setPayMoney(BigDecimal payMoney) {
        this.payMoney = payMoney.setScale(2, RoundingMode.HALF_UP).toString();
    }

    public void setRealMoney(BigDecimal realMoney) {
        this.realMoney = realMoney.setScale(2, RoundingMode.HALF_UP).toString();
    }

    private String payMoney;


    private String realMoney;

    private String notifyUrl;

    /**
     * 通知总次数
     */
    private Integer notifyCount;

    /**
     * 通知状态
     * 0成功 1失败 2处理中
     */
    private char notifyStatus;

    /**
     * 接口版本号
     */
    private String verInterface;

    /**
     * 异步返回内容: success|fail
     */
    private String notifyResponse;

//    /**
//     * 订单标题
//     */
//    private String subject;

//    /**
//     * 二维码内容
//     */
//    private String qrCode;

    /**
     * 商户备用
     */
    private String attach;

    /**
     * 支付IP
     */
    private String payIp;

    /**
     * 支付宝账号PID
     */
    private String alipayPartnerId;

    /**
     * 支付宝账号
     */
    private String partnerAccount;

    /**
     * 支付宝账号对应的姓名
     */
    private String partnerName;

    /**
     * 创建人
     */
    private String createBy;

    /**
     * 创建时间
     */
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;

    /**
     * 更新人
     */
    private String updateBy;

    /**
     * 更新时间
     */
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date updateTime;

}
